A file server is a computer that provides file service relating to the organization of information on persistent storage devices, such as memories, tapes or disks. The file server may be embodied as a storage system including a storage operating system that implements a file system to logically organize the information as a hierarchical structure of directories and files on, e.g., the disks. Each “on-disk” file may be implemented as set of data structures, e.g., disk blocks, configured to store information, such as the actual data for the file. A directory, on the other hand, may be implemented as a specially formatted file in which information about other files and directories are stored.
One type of file system is a write-anywhere file system that does not overwrite data on disks. If a data block on disk is retrieved (read) from disk into memory and modified with new data, the data block is stored (written) to a new location on disk to thereby optimize write performance. A write-anywhere file system may initially assume an optimal layout such that the data is substantially contiguously arranged on disks. The optimal disk layout results in efficient access operations, particularly for sequential read operations, directed to the disks. An example of a write-anywhere file system that is configured to operate on a storage system is the Write Anywhere File Layout (WAFL®) file system available from Network Appliance, Inc., Sunnyvale, Calif. The WAFL file system is implemented as a microkernel within an overall protocol stack of the filer and associated disk storage. The disk storage is typically implemented as one or more storage “volumes” that comprise a cluster of physical storage devices (disks), defining an overall logical arrangement of disk space.
Certain storage systems provide the ability to create and maintain, with substantial flexibility and fine granularity, multiple instances of virtual servers, (vfilers), within a server, such as a storage system platform. A vfiler is a logical partitioning of network and storage resources of the storage system to establish an instance of a multi-protocol server. Each vfiler is maintained and executed independent of other vfilers on the platform. Storage system resources, such as units of storage and network addresses of network interfaces, may be grouped, partitioned and allocated to the vfilers to establish security domains within the storage system. Each of these per-vfiler security domains is termed a vfiler context. Operations performed within a particular vfiler context may not access resources allocated to other vfilers. However, common storage system resources, such as a storage operating system and a file system, may be shared among the vfilers.
A noted disadvantage arises when utilizing vfilers in environments that utilize mirroring and/or other data backup techniques. Using known data mirroring techniques, mirrors are created and established by a mirroring application at the level of a physical storage system and not at the level of individual vfilers. Thus, should a vfiler be migrated from one physical storage system to another due to, e.g., load-balancing operations, etc., the mirroring relationship may be broken as the mirroring application will continue to be associated with the physical storage system originally hosting the vfiler and not the physical storage subsystem hosting the migrated vfiler. Vfiler migration is described in U.S. patent application Ser. No. 10/098,814, entitled REMOTE DISASTER RECOVERY AND DATA MIGRATION USING VIRTUAL APPLIANCE MIGRATION, by Wesley R. Witte, et al., now issued as U.S. Pat. No. 7,143,307 on Nov. 28, 2006, the contents of which are hereby incorporated by reference.
As a result, administrators may be limited when utilizing vfiler migration techniques while at the same time maintaining an acceptable level of data redundancy and backup operations using, e.g., mirroring techniques. Similarly, should an error condition result in data corruption, an administrator may be limited to performing a complete restoration of all data associated with a physical storage system and may not have the opportunity to individually select only a single vfiler to restore. The disadvantages limit the usefulness of vfilers in certain contexts, thereby reducing one of vfilers' functionality in such storage system environments.